<?php
def("amicitia/modelo/ejecucion/","Regla");
def("amicitia/modelo/entidades/","Pareja");
def("amicitia/modelo/entidades/","Persona");
def("amicitia/modelo/entidades/","Juego");

/**
 * Esta regla verifica que las parejas sean unidireccionales (la persona
 * "B" no puede regalarle a la persona "A" si la persona "A" ya le regala a la
 * persona "B").
 * 
 * @author Willy A. Kuster
 */
class ReglaBidireccional implements Regla {
	
	public function verificar(Pareja $pareja, Persona $interesado, array $rama, Juego $juego) {
		
		$parejaInversa = new Pareja();
		$parejaInversa->setDador($pareja->getReceptor());
		$parejaInversa->setReceptor($pareja->getDador());
		
		foreach ($rama as $posibilidad){
			if($posibilidad->getReceptor() == $parejaInversa->getReceptor() &&
			$posibilidad->getDador() == $parejaInversa->getDador())
				return false;
		}
		
		return true;
		
	}
	
}
?>